#!/usr/bin/env python3
# -*- coding:UTF-8 -*-
# Author: nigo
from graphviz import Digraph
import pandas as pd

def read_excel(path,sheet_name):
    """TODO: 读取excel工作表数据
    :path: 文件路径
    :sheet_name: 工作表名称
    :returns: 表数据pd
    """
    df = pd.read_excel(path,sheet_name,index_col=None, keep_default_na=False)
    return df


if __name__ == "__main__":
    df = read_excel("股权架构.xlsx","Sheet1") # 读取excel数据
    photo = Digraph('pictrue', format='png') # 创建photo图像svg
    nodes = {} # 存储所有节点名称的字典
    for index, row in df.iterrows():
        mother_name = row['母公司'] # 母公司名称
        child_name = row['子公司'] # 子公司名称
        text = row['文字'] # 持股比例
        if mother_name not in nodes.keys(): # 如果没有画过该节点
            photo.node(name=mother_name, fontname="Microsoft YaHei") # 画母公司节点
        if child_name not in nodes.keys():
            photo.node(name=child_name, fontname="Microsoft YaHei") # 画子公司节点
        nodes[mother_name] = 1
        nodes[child_name] = 1
        photo.edge(mother_name, child_name,text) # 画母公司到子公司的线
    photo.view() # 打开图片
